# include <iostream>

using namespace std;

/*
案例数组
int arr[10] = {11, 3, 5, 7, 9, 2, 5, 6, 8, 10};

用户数据提供 5 对应下标位置 6 
用户数据提供 20 反馈数据 -1 ，采用非法下标方式告知数据未找到
*/

int main(int argc, char const *argv[])
{
    /**
     * 搜索数据的目标 int 类型数据， 容量为 10
     */
    int arr[10] = {11, 3, 5, 7, 9, 2, 5, 6, 8, 5};

    /**
     * 目标搜索元素，找出当前元素在宿素数组中最后一次出现的下标位置
     */
    int target = 5;

    /*
    1. 定义一个变量 index 初始化为 -1，如果在搜索过程中，找到了
    目标元素，当先 index 数据 >= 0，如果没有找到，index 依然是-1 
     */
    int index = -1;
    /*
    2. 利用 for 循环，从数组中最后一个有效元素下标位置开始，向前遍历
    找到目标元素所在下标位置
    */
   for (int i = 10 - 1; i >= 0; i++)
   {
    if (target == arr[i])
    {
        index = i;
        break;
    }
   }

   /*
   搜索结果展示
   */
  if (index >-1)
  {
    cout << "目标元素 " << target
         << ", 数组在最后一次出现的下标位置 : " << index << endl;
  }
  else
  {
    cout << "目标元素未找到 !!Target Not Found!!" << endl;
  }
  
    return 0;
}
